【HUGO】作成したWebページを多言語対応する
前回は新規プロジェクトを作成し、Firebaseにデプロイするところまでやりました。
今回は作成したWebページを多言語対応する方法についてまとめました。
プロジェクトを作成
前回と同じ手順で新規プロジェクトを作成し、テンプレートをthemes
ディレクトリにクローンします。
新規プロジェクトを作成
hello-hugo
という名前のプロジェクトを作成します。
~hugo_localize> hugo new site hello-hugo Congratulations! Your new Hugo site is created in /hugo_localize/hello-hugo. Just a few more steps and you\'re ready to go: 1. Download a theme into the same-named folder. Choose a theme from https://themes.gohugo.io/ or create your own with the "hugo new theme <THEMENAME>" command. 2. Perhaps you want to add some content. You can add single files with "hugo new <SECTIONNAME>/<FILENAME>.<FORMAT>". 3. Start the built-in live server via "hugo server". Visit https://gohugo.io/ for quickstart guide and full documentation.
テンプレート(Theme)をクローン&config.tomlで設定
作成したプロジェクトのthemes
ディレクトリへテンプレートをクローンします。
~/hugo_localize> cd hello-hugo/themes ~/h/themes> git clone https://github.com/budparr/gohugo-theme-ananke.git themes/ananke Cloning into 'themes/ananke'... remote: Enumerating objects: 15, done. remote: Counting objects: 100% (15/15), done. remote: Compressing objects: 100% (14/14), done. remote: Total 1402 (delta 3), reused 5 (delta 1), pack-reused 1387 Receiving objects: 100% (1402/1402), 4.15 MiB | 2.99 MiB/s, done. Resolving deltas: 100% (753/753), done. // Themeを設定 ~/h/themes> echo 'theme = "ananke"' >> config.toml
_index.mdを作成
Homeページをcontents
下に作成します。
contents
ディレクトリに_index.md
ファイルを作成して
内容を以下のように設定してください。
--- description: "日本むかし話" --- # もも太郎 昔あるところに、 おじいさんとおばあさんが住んでいました。 ある日、おばあさんが川で洗濯をしていると、川上から、大きな(巨大な)ももが、どんぶらこっこ、どんぶらこっこと流れてきました。 おばあさんは、ももを家に持って帰ると、 おじいさんと食べようとわってみました。 すると、おどろいたことに、 元気な男の子がももから現われました。 おじいさんとおばあさんは、 「ももから生まれたから、桃太郎と名づけよう。」と言いました。
反映されているかブラウザ上で確認します。
言語に関する設定をまだ何もしていないのでデフォルトで"EN"となっています。
hugo server -D | EN +------------------+----+ Pages | 7 Paginator pages | 0 Non-page files | 0 Static files | 3 Processed images | 0 Aliases | 0 Sitemaps | 1 Cleaned | 0 Total in 20 ms Watching for changes in /hugo_localize/hello-hugo/{archetypes,content,data,layouts,static,themes} Watching for config changes in /hugo_localize/hello-hugo/config.toml Environment: "development" Serving pages from memory Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender Web Server is available at http://localhost:1313/ (bind address 127.0.0.1) Press Ctrl+C to stop
このプロジェクトを多言語対応してゆきます。
config.tomlで設定
config.toml
に設定を追加します。
baseURL = "http://example.org/" title = "My New Hugo Site" theme = "ananke" DefaultContentLanguage = "ja" [languages] [languages.en] languageName = "English" weight = 10 title = "Japanese Old Tales" [languages.ja] languageName = "Japanese" weight = 20 title = "日本むかし話"
英語ページを作成
先ほど作成した_index.md
の英語版を作成します。
名前は_index.en.md
で保存します。
--- description: "The Peach Boy" --- # The Peach Boy Once upon a time, there lived an old couple in a small village. One day the old wife was washing her clothes in the river when a huge peach came tumbling down the stream. The old woman brought the peach home and cut it up to share with her husband. To their great surprise, a healthy baby boy came right out of the peach! The old couple said, “Let’s name him Momotaro (Peach-boy) as he was born from a peach.”
日本語ページのファイル名を変更
先ほど_index.md
の名前で作成した日本語のファイルを
_index.ja.md
へ変更してください。
ブラウザで確認
先ほどのコマンドをもう一度叩いてみます。 日本語ページに加え英語ページのリソースが追加されているのが確認できます。
hugo server -D | EN | JA +------------------+----+----+ Pages | 7 | 7 Paginator pages | 0 | 0 Non-page files | 0 | 0 Static files | 3 | 3 Processed images | 0 | 0 Aliases | 1 | 0 Sitemaps | 2 | 1 Cleaned | 0 | 0
右端部分に英語ページが表示されているのがわかりますね。
このテンプレートは自動的にメニューに追加してくれる仕組みになっているようですが、 仕様によっては自分で追加する必要があります。
config.toml
のDefaultContentLanguage
でデフォルトの言語を設定することができます。
今回は日本語をデフォルトに設定したので日本語ページが表示されました。
英語ページはこのように表示されます。